package com.generalbackend.role.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.generalbackend.role.mapper.UserLoginHistoryMapper;
import com.generalbackend.role.model.entity.UserLoginHistory;
import com.generalbackend.role.model.query.UserLoginHistoryQuery;
import com.generalbackend.role.service.IUserLoginHistoryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

import static com.generalbackend.common.constants.Constants.DATA;
import static com.generalbackend.common.constants.Constants.TOTAL;

/**
* @Description 用户登录记录业务层实现类
* @author tim.xie
* @date 2021-12-28 16:36
*/

@Service
public class UserLoginHistoryServiceImpl extends ServiceImpl<UserLoginHistoryMapper, UserLoginHistory> implements IUserLoginHistoryService {
    private Logger LOG = LoggerFactory.getLogger(UserLoginHistoryServiceImpl.class);

	@Autowired
	private UserLoginHistoryMapper userLoginHistoryMapper;

	@Override
	public Boolean insert(UserLoginHistory userLoginHistory) {
        // 新增校验
        checkUserLoginHistory(userLoginHistory);
        // 填充额外属性
        fillUserLoginHistory(userLoginHistory);
        Integer num = userLoginHistoryMapper.insert(userLoginHistory);
        if(num <= 0) {
         return false;
         }
		return true;
	}

	@Override
	public Boolean update(UserLoginHistory userLoginHistory) {
        // 修改校验
        checkUserLoginHistory(userLoginHistory);
        // 填充额外属性
        fillUserLoginHistory(userLoginHistory);
        Integer num = userLoginHistoryMapper.updateById(userLoginHistory);
        if(num <= 0) {
          return false;
        }
		return true;
	}
    /**
    * 新增或者修改校验
    * @param userLoginHistory
    * @return
    */
    private void checkUserLoginHistory(UserLoginHistory userLoginHistory) {

    }
    /**
    *填充额外属性
    **/
    private void fillUserLoginHistory(UserLoginHistory userLoginHistory) {

    }

	@Override
	public Boolean deleteById(String id) {
        userLoginHistoryMapper.deleteById(id);
		return true;
	}

	@Override
	public UserLoginHistory selectById(String id) {
        UserLoginHistory userLoginHistory = userLoginHistoryMapper.selectById(id);
        return userLoginHistory;
	}
    @Override
    public JSONObject list(UserLoginHistoryQuery userLoginHistoryQuery) {
        JSONObject result = new JSONObject();
        Page<UserLoginHistory> page = new Page<>(userLoginHistoryQuery.getOffset(), userLoginHistoryQuery.getLimit());
        List<UserLoginHistory> userLoginHistoryList = userLoginHistoryMapper.list(page,userLoginHistoryQuery);
        result.put(TOTAL,  page.getTotal());
        result.put(DATA, userLoginHistoryList);
        return result;
    }



}
